/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Administracion;

import Fabrica.REIArrendatario;
import Fachada.persistenciaFachada;
import Filtrado.FilterManager;
import Interface.iPersistenciaREI;
import java.util.List;
import nivelNegocio.NegociosException;
import nivelPersistencia.PersistenciaException;
import objetosNegocio.Arrendador;

/**
 *
 * @author Christian
 */
public class administradorArrendadores implements REIArrendatario {

    private FilterManager fm;
    private iPersistenciaREI persistencia;

    public administradorArrendadores() {
        fm = new FilterManager();
        persistencia = new persistenciaFachada();
    }

    @Override
    public int agregarArrendador(Arrendador arrendador) throws NegociosException {
        return fm.verificarArrendador(arrendador, 1);
    }

    @Override
    public void actualizarArrendador(Arrendador arrendador) throws NegociosException {
        arrendador.setIdArrendador(this.obtenArrendador(arrendador).getIdArrendador());
        fm.verificarArrendador(arrendador, 3);
    }

    @Override
    public void eliminarArrendador(Arrendador arrendador) throws NegociosException {
        fm.verificarArrendador(arrendador, 2);
    }

    @Override
    public List<Arrendador> listaArrendadores() throws NegociosException {
        try {
            persistencia.turnOn();
            List lista = persistencia.listOfArrendadores();
            persistencia.turnOff();
            return lista;
        } catch (PersistenciaException ex) {
            throw new NegociosException("Error al obtener la lista de Arrendadores.");
        }
    }

    @Override
    public Arrendador obtenArrendador(Arrendador arrendador) throws NegociosException {
        try {
            persistencia.turnOn();
            Arrendador a = persistencia.getArrendador(arrendador);
            persistencia.turnOff();
            return a;
        } catch (PersistenciaException ex) {
            throw new NegociosException(ex.getMessage());
        }
    }
}
